package com.deco.dao.warpper.sys;

import com.free.common.vo.PageResponseVo;
import com.free.ext.mybatis.model.entity.PageResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.deco.dao.delegate.sys.ICmsRoleDao;
import com.deco.dao.domain.table.CmsRole;
import com.deco.dao.logic.sys.CmsRoleDao;
import com.deco.domain.vo.sys.CmsRoleVo;
import com.free.ext.mybatis.warpper.BaseDaoWarpper;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
@Repository
public class CmsRoleDaoWarpper extends BaseDaoWarpper<CmsRoleVo,Integer,CmsRole> implements ICmsRoleDao {

    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    @Autowired
    private CmsRoleDao cmsRoleDao;

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    @Override
    public void registerEnums() {

    }

    @Override
    public List<CmsRoleVo> getCmsRoles(CmsRoleVo role) {
        CmsRole tbCmsRole = convertToTable(role);
        List<CmsRole> cmsRoles = cmsRoleDao.getCmsRoles(tbCmsRole);
        List<CmsRoleVo> res = new ArrayList<CmsRoleVo>();
        if(cmsRoles == null || cmsRoles.size() == 0){
            return res;
        }
        cmsRoles.forEach(x -> {
            res.add(convertToView(x));
        });
        return res;
    }

    @Override
    public PageResponseVo<CmsRoleVo> selectPageInfoByCmsRole(CmsRoleVo condition, int pageNo, int pageSize) {
        CmsRole tCondition = convertToTable(condition);
        PageResponseModel<CmsRole> cmsRoleModel = cmsRoleDao.selectPageInfoByCmsRole(tCondition,pageNo,pageSize);
        return convertToViewResponseVo(cmsRoleModel);
    }

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
